Turbo and convolutional codes are widely used forward error correction codes. Turbo codes were proposed by Berrou and Glavieux in 1993 and have been adopted in many communications standards such as Wideband-CDMA (WCDMA), Code Division Multiple Access 2000 (CDMA2000), Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE) and Digital Video Broadcasting-Return Channel via Satellite (DVB-RCS). The codes allow near optimal decoding with excellent performance approaching the Shannon limit for Additive White Gaussian Noise (AWGN) channels.
Conventional implementations of convolutional and turbo encoders handle a single input bit per clock cycle. If a conventional encoder simultaneously supports many different standards, straightforward implementations utilize a significant amount of additional configuration data. Moreover, the configuration data is prepared outside the encoder and loaded into internal registers when the encoder is initialized. If the configuration data is sufficiently long, many clock cycles are used to configure the encoder.